﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GSPatEditor.Serialization.ProjectSegment
{
    [Serializable]
    class KeyFrameInfoData
    {
        public int FrameIndex;
        public int AttackLevel;
        public int CancelLevel;
        public bool IsLoop;
    }
    [Serializable]
    class FrameImageTransformationInfo
    {
        public int AlphaBlend;
        public int ScaleX, ScaleY;
        public int Rotate;
    }
    [Serializable]
    class FrameDamageInfoData
    {
        public int AttackType;
        public int AttackRate;

        public int HitStopSelf;
        public int HitStopOther;

        public int HitVX;
        public int HitVY;
        public int HitG;

        public int SoundEffect;

        public int Bind;
    }
    [Serializable]
    class AxisAlilgnedBoxData
    {
        public int X1, Y1, X2, Y2;
    }
    [Serializable]
    class BoxData
    {
        public AxisAlilgnedBoxData Box;
        public int Rotation;
    }
    [Serializable]
    class FrameData
    {
        public string ImageName;
        public int DisplaySizeX, DisplaySizeY;
        public int ImageOffsetX, ImageOffsetY;
        public FrameImageTransformationInfo Transform;
        public int FrameCount;
        public int OriginX, OriginY;

        public FrameDamageInfoData Damage;
        public int StateFlag;
        public int AttackFlag;

        public int Point0X, Point0Y;
        public int Point1X, Point1Y;
        public int Point2X, Point2Y;

        public AxisAlilgnedBoxData PhysicsBox;
        public BoxData[] HitBoxes;
        public BoxData[] AttackBoxes;
    }
    class AnimationSegment : SegmentBase
    {
        public int Name;

        public FrameData[] FrameInfo;
        public KeyFrameInfoData[] KeyFrameInfo;

        public void AddToProject(Pat.PatProject project)
        {
            throw new NotImplementedException();
        }
    }
}
